package com.albertyjz.juc;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

class MyThread implements Callable<Integer>{

    @Override
    public Integer call() throws Exception {
        System.out.println("come here");
        return 1024;
    }
}

public class CallableDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //Thread里面只能放runnable接口，所以需要futuretask接口来适配这个参数。这个接口实现了runnable接口，可以通过右键Diagrams查看。
        //这个体现了java的多态，为什么要面向接口编程，只要都实现了这个接口那么就可以横向的扩张。就是适配器模式
        FutureTask futureTask=new FutureTask(new MyThread());
        new Thread(futureTask,"A").start();
        System.out.println(futureTask.get());
    }
}
